package com.jdd.modules.parking.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.jdd.modules.parking.entity.ConfigParkThrough;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @Description: 车场通行配置
 * @Author: jdd
 * @Date: 2021-02-18
 * @Version: V1.0
 */
public interface IConfigParkThroughService extends IService<ConfigParkThrough> {
    /**
     * 根据设备IP和车场编码获取此设备的通行配置
     *
     * @param serialNo 设备序列号
     * @return 通行配置
     */
    ConfigParkThrough queryConfigParkThrough(@Param("serialNo") String serialNo);

    /**
     * 获取车场下所有的通行配置
     *
     * @return 通行配置列表
     */
    List<ConfigParkThrough> findConfigParkThroughByParkCode();

    /**
     * 根据id获取通行配置
     *
     * @param id 通行配置id
     * @return 通行配置
     */
    ConfigParkThrough findById(String id);

    /**
     * 删除对应车场编号的车场下的所有的计费规则信息
     *
     * @return 删除结果
     */
    Boolean removeByParkCode();

    /**
     * 通过设备序列号删除通行配置
     *
     * @param serialNo 设备序列号
     * @return 删除结果
     */
    boolean deleteEntityBySerialNo(String serialNo);

    /**
     * 更新通行配置实体
     *
     * @param configParkThrough 通行配置
     * @return 更新结果
     */
    boolean updateEntity(ConfigParkThrough configParkThrough);

    /**
     * 保存通行配置实体
     *
     * @param configParkThrough 通行配置
     * @return 保存结果
     */
    boolean saveEntity(ConfigParkThrough configParkThrough);

    /**
     * 根据id删除对应的通行配置实体
     *
     * @param id 通行配置id
     * @return 删除状态
     */
    boolean deleteEntityById(String id);

    /**
     * 根据id列表删除通行配置
     *
     * @param ids id列表
     * @return 删除状态
     */
    boolean deleteEntityByIds(List<String> ids);

    /**
     * 清空表数据
     *
     * @return true 清空成功
     */
    boolean removeAllInfo();
}
